package com.zhonghui.scm.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;

/**
 * 供应链SCM-销售管理-销售发货对象 scm_sale_delivery
 * 
 * @author zhonghui
 * @date 2022-05-20
 */
@ApiModel("销售管理-销售发货对象")
public class ScmSaleDelivery extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @Excel(name = "编号")
    @ApiModelProperty("编号")
    private Long id;

    /** 发货单号 */
    @Excel(name = "发货单号")
    @ApiModelProperty("发货单号")
    private String deliveryNo;

    /** 合同id */
    @ApiModelProperty("合同id")
    private Long contractId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    @ApiModelProperty("合同编号")
    private String contractNo;

    /** 客户id */
    @ApiModelProperty("客户id")
    private String customId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty("客户名称")
    private String customName;

    /** 送货方式 */
    @Excel(name = "送货方式")
    @ApiModelProperty("送货方式")
    private String shipping;

    /** 交货日期 */
    @Excel(name = "交货日期")
    @ApiModelProperty("交货日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deliveryDate;

    /** 收货地址 */
    @Excel(name = "收货地址")
    @ApiModelProperty("收货地址")
    private String address;

    /** 联系人 */
    @Excel(name = "联系人")
    @ApiModelProperty("联系人")
    private String linkman;

    /** 联系电话 */
    @Excel(name = "联系电话")
    @ApiModelProperty("联系电话")
    private String contactWay;

    /** 出库状态 */
    @Excel(name = "出库状态")
    @ApiModelProperty("出库状态")
    private Integer status;

    /** 销售到货明细 */
    @ApiModelProperty("销售到货明细")
    private List<ScmSaleDeliveryItem> scmSaleDeliveryItemList;

    public ScmSaleDelivery(Long id, String deliveryNo, Long contractId, String contractNo, String customId, String customName, String shipping, Date deliveryDate, String address, String linkman, String contactWay, Integer status, List<ScmSaleDeliveryItem> scmSaleDeliveryItemList) {
        this.id = id;
        this.deliveryNo = deliveryNo;
        this.contractId = contractId;
        this.contractNo = contractNo;
        this.customId = customId;
        this.customName = customName;
        this.shipping = shipping;
        this.deliveryDate = deliveryDate;
        this.address = address;
        this.linkman = linkman;
        this.contactWay = contactWay;
        this.status = status;
        this.scmSaleDeliveryItemList = scmSaleDeliveryItemList;
    }

    public ScmSaleDelivery() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDeliveryNo() {
        return deliveryNo;
    }

    public void setDeliveryNo(String deliveryNo) {
        this.deliveryNo = deliveryNo;
    }

    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getCustomId() {
        return customId;
    }

    public void setCustomId(String customId) {
        this.customId = customId;
    }

    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public String getShipping() {
        return shipping;
    }

    public void setShipping(String shipping) {
        this.shipping = shipping;
    }

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getLinkman() {
        return linkman;
    }

    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    public String getContactWay() {
        return contactWay;
    }

    public void setContactWay(String contactWay) {
        this.contactWay = contactWay;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public List<ScmSaleDeliveryItem> getScmSaleDeliveryItemList() {
        return scmSaleDeliveryItemList;
    }

    public void setScmSaleDeliveryItemList(List<ScmSaleDeliveryItem> scmSaleDeliveryItemList) {
        this.scmSaleDeliveryItemList = scmSaleDeliveryItemList;
    }

    @Override
    public String toString() {
        return "ScmSaleDelivery{" +
                "id=" + id +
                ", deliveryNo='" + deliveryNo + '\'' +
                ", contractId=" + contractId +
                ", contractNo='" + contractNo + '\'' +
                ", customId='" + customId + '\'' +
                ", customName='" + customName + '\'' +
                ", shipping='" + shipping + '\'' +
                ", deliveryDate=" + deliveryDate +
                ", address='" + address + '\'' +
                ", linkman='" + linkman + '\'' +
                ", contactWay='" + contactWay + '\'' +
                ", status=" + status +
                ", scmSaleDeliveryItemList=" + scmSaleDeliveryItemList +
                '}';
    }
}
